A number of systems and solutions are offered on the market for the design of parts or assemblies of parts, such as the one provided by DASSAULT SYSTEMES under the trademark CATIA. These so-called computer-aided design (CAD) systems allow a user to construct, manipulate and view complex three-dimensional (3D) models of objects or assemblies of objects. CAD systems provide a representation of modeled objects using edges or lines, in certain cases with faces. Lines or edges may be represented in various manners, e.g. non-uniform rational B-splines (NURBS). These CAD systems manage parts or assemblies of parts as modeled objects, which are essentially specifications of geometry. Specifically, CAD files contain specifications, from which a geometry is generated, and from geometry a representation is generated. Specifications, geometry and representation may be stored in a single CAD file or multiple ones. CAD systems include graphic tools for representing the modeled objects to the designers; these tools are dedicated to the display of complex objects—the typical size of a file representing an object in a CAD system being in the range of a Mega-byte for part, and an assembly may comprise thousands of parts. A CAD system manages models of objects, which are stored in electronic files.
There also exists product life cycle management (PLM) solutions, such as the suite of products provided by DASSAULT SYSTEMES under the trademarks CATIA, ENOVIA and DELMIA; these solutions provide an engineering hub, which organizes product engineering knowledge, a manufacturing hub, which manages manufacturing engineering knowledge, and an enterprise hub which enables enterprise integrations and connections into both the engineering and manufacturing hubs. All together the systems delivers an open object model linking products, processes, resources to enable dynamic, knowledge-based product creation and decision support that drives optimized product definition, manufacturing preparation, production and service.
Such PLM solutions comprise a relational database of products. A database is usually defined as a collection of data (typically data and relations between the data) organized for rapid search and retrieval. Databases are structured to facilitate storage, retrieval, modification, and deletion of data in conjunction with various data-processing operations. Databases generally consist of a file or set of files that can be broken down into records, each of which consists of one or more fields. Fields are the basic units of data storage. Users retrieve database information primarily through queries. Using keywords and sorting commands, users can search, rearrange, group, and select the field in many records to retrieve or create reports on particular aggregates of data according to the rules of the database management system being used.
Using PLM solutions, a basic need of a user is to visualize a complex product made of thousand objects/parts and this, possibly according to different views or different viewpoints (virtual camera). The user may notably modify the viewpoint while viewing the modeled product being displayed, e.g. a sales engineer may whish to show an overview of a product to his customers.
The standard solution to this problem is to load in the client computer memory the whole model stored on the PLM database and corresponding to the assembly of said objects, including a three dimensional graphic representation of the model and all the information on said objects such as geometry, constraints . . . , but also hyperlinks to other objects. Thus, selection of individual parts is possible. However, in the field of PLM/CAD, the critical problem is that the global amount of visualization data is too large to fit in the client computer memory or at least too large for enabling a rapid display. Thus, due to the typical size of a file representing a CAD product (a product such as an airplane is likely to contain millions of parts, representing several giga-octets of memory), the rendering time of a view of said product may be cripplingly long. Furthermore, loading the whole model and/or selecting individual parts is not always necessary for a user, e.g. the sales engineer solely needs to show to his customers an overview of the product.
Another solution consists in navigating in a PLM database without loading the whole model. In this case, a viewpoint on a view of objects to be rendered is identified. Then, the view is rendered according to the identified viewpoint. To this aim, a plurality of locations in the view are determined, which are for example obtained according to a grid. Next, the database is queried and modeled objects are identified according to said locations. Typically, rays passing through the viewpoint and the locations are cast, and modeled objects intersecting the rays are identified. Meanwhile, the modeled objects identified are incrementally displayed in the graphical user interface so as to render a three dimensional view of the modeled objects.
However, this solution presents several drawbacks. First, the whole process must be repeated for each new viewpoint. When several new viewpoints are selected by the user on the client computer, the PLM database is queried several times, and resources (memory, CPU . . . ) of the server hosting the PLM database are continuously used, which can lead to a depletion of available resources of the server. Consequently, the responses to the queries cannot be provided in time, and as a result, the three dimensional view of the modeled objects cannot be displayed. Therefore, the visual navigation around the model, that is, the visualization of the model according to several successive viewpoints, is not user-friendly as the display of successive views lags; the transition between two views is not immediate or quasi-immediate. The visual navigation thus lacks of fluidity and ergonomics, and is time consuming for the user. Moreover, even if a new selected viewpoint was previously selected, the whole process has still to be repeated. Indeed, resources of the client computer are limited, e.g. the memory of the client is cleared as a new view is displayed.
Incidentally, the client computer of the user may be in communication through a product data management (PDM) system via a computer network such as a Local Area Network (LAN) or a Wide Area Network (WAN). Such a situation may occur when a sales engineer located outside of his office wishes to show a product (e.g. a 3D model) to a customer. Requests performed by the client computer pass over the network, and responses provided by the PDM system are also transported by the network. Again, the repetition of the whole process involves a huge consumption of the resources of the PDM system, but also a large consumption of the network bandwidth. As a result, the network is congested, and others networks parameters such as latency, delay, jitter, packet dropping probability, queuing delay, bit error rate are degraded. The network is overwhelmed and its overall performances strongly decrease.
Thus, according to the limitations of the existing solutions shortly discussed above, there is a need for an improved solution for displaying an assembly of objects of a product lifecycle management database, which decreases computation and/or network resources required to provide the display.